package api

import (
	"github.com/gin-gonic/gin"
	"hcy-api/lib/middleware"
)

func RegisterRouter(r *gin.RouterGroup) {
	PublicRouter(r) // 公共路由
	orgRouter(r)    // 注册课件路由
	userRouter(r)   // 用户路由
	roleRouter(r)   // 角色路由

}

func PublicRouter(r *gin.RouterGroup) {
	r.POST("login", UserApi.Login)
}

func userRouter(r *gin.RouterGroup) {
	sub := r.Group("user")
	sub.Use(middleware.GinAuthorizationMiddleAware())
	// 获取页面路由
	sub.GET("pageTree", UserApi.GetRouterTreeForFile)
	// 添加用户
	sub.POST("add", UserApi.Add)
	// 更新
	sub.PUT("update", UserApi.Update)
	// 自己更新密码
	sub.PUT("pwd", UserApi.UpdatePassword)
	// 重置用户密码
	sub.PUT("pwd/:id", UserApi.ResetPassword)
	// 删除用户
	sub.DELETE("delete/:id", UserApi.Delete)
	// 获取用户分页
	sub.GET("page", UserApi.Page)
	// 获取用户列表
	sub.GET("list", UserApi.GetUserList)
	// 分配部门管理权限
	sub.GET("boundOrg/:id", UserApi.GetBoundOrg)
	sub.PUT("bindOrg", UserApi.BindOrg)
	// 绑定角色
	sub.GET("boundRole/:id", UserApi.GetBoundRole)
	sub.PUT("bindRole", UserApi.BindRole)

}

func orgRouter(r *gin.RouterGroup) {
	sub := r.Group("org")
	sub.Use(middleware.GinAuthorizationMiddleAware())
	// 创建部门
	sub.POST("create", OrgApi.Create)
	// 获取部门列表,这里获取的全部部门
	sub.GET("list", OrgApi.List)
	// 这里获取的自己能管理的部门
	sub.GET("listDto", OrgApi.All)
	// 获取部门下的用户列表
	sub.GET("userList/:orgId", OrgApi.UserList)
	// 删除部门
	sub.DELETE("/:id", OrgApi.Delete)
}

func roleRouter(r *gin.RouterGroup) {
	sub := r.Group("role")
	sub.Use(middleware.GinAuthorizationMiddleAware())
	// 获取角色列表
	sub.GET("list", RoleApi.GetRole)

}
